package com.sys.midware.MQ.rocketMQ.logic;

import java.util.List;

import com.alibaba.rocketmq.client.consumer.listener.MessageListener;
import com.alibaba.rocketmq.client.exception.MQClientException;

/**
 * 描述：
 * 	 rocketmq消费者类接口，使用示例：<br />
 *   <pre>
 *   IConsumer consumer = new ConsumerImpl();	
 *   consumer.register(messageListener, topics);	
 *   consumer.start(); 	
 *   
 *   // when you want shutdown	
 *   consumer.shutdown();
 *   </pre>
 *
 * @author jackyshang
 * @version 2017-07-05
 *
 */
public interface IPushConsumer {

	/**
	 * 描述：注册消费消息的MessageListener和需要消费的topic,若是没有MessageListener和topic无法启动成功； 
	 *
	 * @param messageListener
	 */
	public void register(MessageListener messageListener);
	
	/**
	 * 描述： 注册某个消费的主题，在start（）之前调用；
	 *
	 * @param topic
	 * @param tags
	 */
	public void subscribe(String topic, String tags);
	
	/**
	 * 描述：注册消费消息的MessageListener和需要消费的topic,若是没有MessageListener和topic无法启动成功； 
	 *
	 * @param messageListener
	 */
	public void register(MessageListener messageListener, List<String> topics); 
	
	/**
     * 描述：注册消费消息的MessageListener和需要消费的topic,若是没有MessageListener和topic无法启动成功； 
     *
     * @param messageListener
     */
	 public void register(MessageListener messageListener, String topic, String tags); 
	
	/**
	 * 描述：启动消费者； 
	 *
	 * @throws MQClientException
	 */
	public void start() ;
	
	/**
	 * 描述：关闭消费者； 
	 *
	 */
	public void shutdown(); 
	
	/**
	 * 设置基本属性
	 */
	public void initConfig();

}
